package com.hsxxherp.ation.common.error;

import com.google.common.collect.Maps;

import java.util.Map;

/**
 * 标准错误
 */
public enum AtionErrorMsgEnum {

    /**
     * 内部错误
     */
    SYS_COMMON_ERROR("500", "未知错误，请通过rid查询具体详情"),
    /**
     * 通用参数检查错误，需要调用String.format将未通过的参数格式化注入message中
     */
    SYS_COMMON_PARAM_NO_CHECK("5X-COMMON-COMMON-00000", "参数验证失败！未通过的参数为%S");
    // 枚举翻译器
    static final Map<String, String> valueMap = Maps.newHashMap();

    static {
        for (AtionErrorMsgEnum value : AtionErrorMsgEnum.values()) {
            valueMap.put(value.errorCode, value.errorMessage);
        }
    }

    private String errorCode;
    private String errorMessage;

    // getter
    public String getErrorCode() {
        return errorCode;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    private AtionErrorMsgEnum(String errorCode, String errorMessage) {
        this.errorCode = errorCode;
        this.errorMessage = errorMessage;
    }

    /**
     * 通过错误代码查找其中文含义
     */
    public static String findMsgByCode(String errorCode) {
        return valueMap.getOrDefault(errorCode, null);
    }
}
